/*
 * GeneCell.h
 *
 *  Created on: Jan 14, 2012
 *      Author: luiz
 */

#ifndef GENECELL_H_
#define GENECELL_H_


#include "Cell.h"

class GeneCell
{
    int position_num_;
    Cell::CLOCK_ZONE clock_zone_;
    int different_clock_;

public:
    GeneCell(int num_position=0, const Cell::CLOCK_ZONE & clock_zone=Cell::CLOCK_ZONE_0, int different_clock = 0);
    GeneCell(const GeneCell &genecell);
    GeneCell &operator=(const GeneCell & genecell);
    virtual ~GeneCell();

    void set_position_num(int position);
    int position_num() const;

    void set_clock_zone(const Cell::CLOCK_ZONE &clock_zone);
    Cell::CLOCK_ZONE clock_zone() const;

    void set_different_clock(int different_clock);
    int different_clock() const;

    bool operator== ( const GeneCell& lhs) const;
    bool operator!= ( const GeneCell& lhs)const;
    bool operator<(const GeneCell& lhs)const;

};

#endif /* GENECELL_H_ */
